#!/usr/bin/python3

from openai import OpenAI
import pandas as pd

client = OpenAI(
    # 请用知识引擎原子能力API Key将下行替换为：api_key="sk-xxx",
    api_key="sk-f54nFlRfMGCcUpt1t58rXmn9iJT6dlTwPur2OZ5ce7ulHecD",  # 如何获取API Key：https://cloud.tencent.com/document/product/1772/115970
    base_url="https://api.lkeap.cloud.tencent.com/v1",
)

def read_excel(file_path):
    try:
        # 使用pandas读取Excel文件
        df = pd.read_excel(file_path, sheet_name="Sheet1")

        # 将DataFrame转换为字符串格式
        context = "以下是Excel文件的内容：\n\n"
        context += df.to_string(index=False)  # 不显示行索引

        return context
    except Exception as e:
        return f"读取Excel文件时出错：{str(e)}"


def run():
    excel_content = read_excel("./导入测试数据.xlsx")

    system_message = (
        "你是一个专业的数据插入助手,你会根据给定的Excel数据，并根据给定的实体结构，生成对应的SQL语句。"
        "请根据提供的Excel数据进行分析并回答问题。"
    )

    user_message = (
        "表名称: user\n"
        "数据结构:\n"
        "数据库标识   类型   中文标识\n"
        "name       字符串  名称\n"
        "age        整数   年龄\n"
        "sex        字符串   性别\n"
        "特殊说明: sex 为选择项，可选值有男(man)、女(woman),()中为数据库中存储的值。\n"
        "excel的数据:\n"
        + excel_content
    )

    print(user_message)

    messages = [
        {"role": "system", "content": system_message},  # 系统角色的上下文
        {"role": "user", "content": user_message},      # 用户输入
        {"role": "assistant", "content": ""}            # 模型的回复
    ]

    completion = client.chat.completions.create(
        model="deepseek-r1",  # 此处以 deepseek-r1 为例，可按需更换模型名称。
        messages=messages,
    )

    # 通过reasoning_content字段打印思考过程
    # print("思考过程：")
    # print(completion.choices[0].message.reasoning_content)
    # 通过content字段打印最终答案
    print("最终答案：")
    print(completion.choices[0].message.content)

run()